<?php
namespace app\admin\controller;


use app\common\lib\IAuth;
use think\Exception;

class Login extends BaseController{

    public function _initialize(){}

    /**
     * 登陆页面：未登录进行登陆操作，已登录跳转到后台管理页面
     * @return mixed|void
     */
    public function index(){
        $isLogin=$this->isLogin();
        if ($isLogin){
            return $this->redirect('index/index');
        }else{
            //如果后台用户已经登陆，那么我们只需要跳转到后台，无需登陆
            return $this->fetch();
        }
    }

    /**
     * 登陆操作
     */
    public function check(){
        if (request()->isPost()){
            $data=input('post.');
            if (!captcha_check($data['code'])){
                $this->error('验证码不正确');
            }

            try{
                //判断是否用户名密码合法
                $user=model('AdminUser')->get(['username' => $data['username']]);
            }catch (Exception $e){
                $this->error($e->getMessage());
            }

            if (!$user || $user->status!=config('code.status_normal')){
                $this->error('该用户不存在');
            }
            if (IAuth::setPassword($data['password']) != $user['password']){
                $this->error('该用户输入的密码不正确');
            }

            //1.更新数据登陆时间，更新登陆ip
            $udata=[
                'last_login_time'=>time(),
                'last_login_ip'=>request()->ip(),
            ];

            try{
                model('AdminUser')->save($udata,['id'=>$user->id]);
                //更新
            }catch (Exception $e){
                $this->error($e->getMessage());
            }

            //2.保存到session中
            session(config('admin.session_user'),$user,config('admin.session_user_scope'));
            $this->success('登陆成功！！','index/index');
        }else{
            $this->error('请求不合法，请重新输入登陆');
        }
    }

    /**
     * 退出登录
     */
    public function logout(){
        //清空session
        session(null,config('admin.session_user_scope'));
        //跳转到登陆页面重新登陆
        $this->redirect('login/index');
    }

}